package com.tofacebook.spring.model.Impl;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.lang.Nullable;

/**
 * javabean 在调用初始化方法之前和之后都有对应一个处理逻辑
 * 那么这些处理逻辑需要实现BeanPostProcessor 接口里面的方法
 * 该类是一个实现类
 */
public class MyBeanPostProcessor implements BeanPostProcessor {

    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("初始化对象之前你可以做一些什么事情，在这里面写你的业务逻辑");
        System.out.println("生命周期第三步3-0:初始化方法之前的业务逻辑");

        return bean;
    }

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("初始化对象之后你还需要做一些什么事情，在这里面写你的业务逻辑");

        System.out.println("生命周期第三步3-1:初始化方法之后的业务逻辑");
        return bean;
    }
}
